/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.br.cp.dao.empregado;

import com.br.cp.modelo.departamento.Departamento;
import com.br.cp.modelo.empregado.Empregado;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

/**
 *
 * @author thiago.rodrigues
 */
@Stateless(name="empregadoDao")
public class EmpregadoJPADAO implements EmpregadoDAO {
    
    @PersistenceContext(unitName="ctrlProfissionalPersistUnit")
    private EntityManager em;
    
    
    @Override
    public void inserir(Empregado empregado) {
        this.em.persist(empregado);
    }
    
    
    @Override
    public List<Empregado> obterListaPorDepartamento(Departamento dep) {
        
        Query query = this.em.createNamedQuery("obterListaEmpPorDep");
        query.setParameter("codigoDep", dep.getCodigo());
        
        return (List<Empregado>) query.getResultList();
    }
    
    
    @Override
    public void remover(Empregado emp) {
        
        Empregado empPersist = this.recuperarPorMatricula(emp.getMatricula());
        
        this.em.remove(empPersist);
    }
    

    @Override
    public Empregado recuperarPorMatricula(int matricula) {
        
        Query query = this.em.createNamedQuery("recuperarPorMatricula");
        query.setParameter("matricula", matricula);
        
        return (Empregado) query.getSingleResult();
    }
    
}
